SRE 観点での Google の本番環境
Google のデータセンターの特徴と用語の説明
サーバーのハードウェアとソフトウェアの混同を避けるため、以下の用語を使用
「マシン」 はハードウェアの一部 (もしくは仮想マシン)
「サーバー」 はサービスを構成するソフトウェアの一部
構成
データセンター内には、複数ラックからなるクラスターが複数存在 データセンター内のマシン同士の通信のために何万ものポートを持つ高速な仮想スイッチを開発
データセンター同士は、グローバルなバックボーンネットワーク B4 で互いに接続 ハードウェアの組織化のためにクラスタ OS の Borg が使われる Borg は、ジョブ開始時にタスクに適したマシンを見つけてそのマシンにサーバープログラムを起動させる
流動的にタスクが割り当てられるため、通信のために Borg Naming Service (BNS) を利用
タスクはローカルストレージを一時的な記憶域として使える
永続的なストレージとしてはクラスタストレージ
Colossus の上に構築されたデータベース的なサービスもいくつかある
Bigtable : ペタバイト級のデータベースを扱える NoSQL データベースシステム Spanner : SQL ライクなインタフェースを提供し、全世界で一貫性を必要とするユーザを支援 計算負荷の高いルーティングの決定をルーターから切り離し、シンプルなスイッチングハードウェアを使用
DNS リクエストでの地理的なロードバランシング
ユーザーサービスごとのロードバランシング
その他
ソフトウェアインフラストラクチャ
ハードウェアを最も効率よく利用できるように設計
すべてのサーバーに HTTP サーバーがあり、タスクの診断と統計情報を提供
ダッシュボードやモニタリング、デバッグを容易にする
開発環境
一部のオープンソースリポジトリがあるプロダクトを除き、単一のリポジトリで作業
自身のプロジェクト外のコンポーネントで問題を発見したら、変更申請を出せる
データセンターのビルドサーバーでビルド
参考文献